package com.pasabahceambalaj.session;

import java.util.Arrays;

import org.jboss.seam.annotations.Name;
import org.jboss.seam.contexts.Contexts;
import org.jboss.seam.framework.EntityQuery;

import com.pasabahceambalaj.entity.Firma;
import com.pasabahceambalaj.entity.Kullanici;

@Name("kullaniciList")
public class KullaniciList extends EntityQuery<Kullanici> {

	private static final long serialVersionUID = 1L;

	private static final String EJBQL = "select kullanici from Kullanici kullanici";
	private static final String EJBQL_no_data = "select kullanici from Kullanici kullanici where kullanici.id=-1";

	private static final String[] RESTRICTIONS = { "lower(kullanici.ad) like lower(concat(#{kullaniciList.kullanici.ad},'%'))", "lower(kullanici.kod) like lower(concat(#{kullaniciList.kullanici.kod},'%'))", "lower(kullanici.parola) like lower(concat(#{kullaniciList.kullanici.parola},'%'))", };

	private Kullanici kullanici = new Kullanici();

	public KullaniciList() {
		if (Authenticator.isLoggedIn()) {
			if (!Authenticator.isAdmin()) {
				Kullanici user = (Kullanici) Contexts.getSessionContext().get("user");
				Firma firma = user.getFirma();
				setEjbql(EJBQL + " where kullanici.firma.id = " + firma.getId());
			} else {
				setEjbql(EJBQL);
			}
		} else {
			setEjbql(EJBQL_no_data);
		}
		setRestrictionExpressionStrings(Arrays.asList(RESTRICTIONS));
		setMaxResults(25);
	}

	public Kullanici getKullanici() {
		return kullanici;
	}
}
